叠加分析 Sample详情
最后更新时间:2019年7月5日
叠加分析是地理信息系统最常用的提取空间隐含信息的手段之一。该方法源于传统的透明材料叠加,即将来自不同的数据源的图纸绘于透明纸上,在透光桌上将其叠放在一起,然后用笔勾出感兴趣的部分或提取出感兴趣的信息。
地理信息系统的叠加分析是将有关主题层组成的数据层面进行叠加,产生一个新的数据层面的操作,其结果是原来的要素被分割、剪断、套合,然后生成新的要素,新要素综合了原来两层要素所具有的属性。也就是说,空间叠加,不仅产生新的空间特征,还将实体的属性联接起来,产生新的属性。借助叠加分析可以进行空间数据相交、求并、相减等多种空间分析操作。
空间叠加分析涉及到一系列的运算,现将叠加运算总结为以下五种类型:点对区运算、线对区运算、区对区运算、点对线运算、区对点运算。每种类型对应一定的逻辑运算,生成的结果也不尽相同,如下表所示:
分析类型 | 叠加分析功能 | 结果 |
---|---|---|
点对区 | 相交、相减 | 点简单要素类 |
线对区 | 相交、相减、求并、判别 | 线简单要素类 |
区对区 | 相交、相减、求并、判别、对称差 | 区简单要素类 |
点对线 | 相交 | 点简单要素类 |
区对点 | 相交、相减 | 区简单要素类 |
下方图片以区和区的叠加分析展示了求交、求并、相减、求对称差的功能作用。
在进行以下空间逻辑运算之前,首先需要根据对应的接口准备待分析的几何对象。类似缓冲分析中几何对象MGSGeometry的获取方法,可以通过地图要素查询从MGSFeature中获取MGSGeometry;也可以先绘制图形,然后转换得来;还可以直接根据坐标数据构建。其中查询方式最常用。在此不展开讲述,可以参考缓冲分析部分的文档。
即求两个数据集的交集的操作,两个数据集中相交的部分被保存到结果数据集中,其余部分被排除。
//构造空间分析对象 MGSSpaAnalysis *spaAnalysis=[[MGSSpaAnalysis alloc] init]; //计算两个几何对象的交集 MGSGeometry *geometry=[spaAnalysis intersection:geoPolygonA intersectGeom:geoPolygonB];
求两个数据集的并集的操作,用“输入几何对象”将“被求并几何对象”打散,分开为多个元素,然后将所有要素信息全部记录到结果数据中。简单地说,如果求并的是两个有相交区域的区要素,结果为3个图元:相交部分、裁剪掉相交区域的原始两图元。
MGSGeometry *geometry=[spaAnalysis unions:geoPolygonA unionGeom:geoPolygonB];
相减,即从几何对象A中“减去”与几何对象B相重叠的部分。
MGSGeometry *geometry=[spaAnalysis difference:geoPolygonA differenceGeom:geoPolygonB];
对称差即获取数据集A与叠加数据集B相交图元以外的部分。
MGSGeometry *geometry=[spaAnalysis symmetricDifference:geoPolygonA intersectionGeom:geoPolygonB];
分割操作,只能用线对象对区或线几何对象进行分割。
MGSGeometry *geometry=[spaAnalysis split:geoPolygonB line:geoVarLine];
与求并操作不同的是,合并是将两个对象合并为一个对象。
MGSGeometry *geometry=[spaAnalysis merge:geoPolygonA mergeGeom:geoPolygonB];
说明:上述的各种叠加分析,都是对两个几何对象的操作,接口中需要传入两个几何对象,其中第一个参数的对象表示被分析的对象,第二个参数是用来叠加分析的对象。例如相减difference接口中第一个几何对象是被“减去”的,第二个是用来执行“减去”操作的对象。